package vashion.azeroth.core.service.tran;

import org.springframework.stereotype.Service;
import vashion.azeroth.cart.obj.CartItemDO;
import vashion.azeroth.core.personal.tran.pojo.PersonalCarts;
import vashion.azeroth.core.result.ApiResult;

import java.util.List;

@Service
public interface PersonalCartsService {

    /**
     * 添加购物车
     */
    public ApiResult<Boolean> addCarts(PersonalCarts personalCarts);

    /**
     * 将商品从购物车删除
     */
    public ApiResult<List<CartItemDO>> removeOneItemFromCarts(Long memberId,
    															Long cartId);

    /**
     * 批量删除商品
     */
    public ApiResult<List<CartItemDO>> removeMuliItemFromCarts(
    		Long memberId, List<Long> cartIdList);

    /**
     * 我的购物车列表
     */
    public ApiResult<List<CartItemDO>> myCarts(Long memberId);

    /**
     * 购物车异步联动
     * <p/>
     * 01.修改商品数量后计算 02.勾选商品后计算
     * <p/>
     * 当前只支持修改商品数量，即：01操作
     */
    public ApiResult<Boolean> operateCartItem(PersonalCarts personalCarts);

    /**
     * 创建订单后操作
     */
    public ApiResult<Boolean> dealAfterCreatOrder(Long memberId,
                                                  List<Long> cartIdList);

}
